import {
  HTTP
} from '../utils/http-p.js'

class KeywordModel extends HTTP{
  // 获取历史记录(使用缓存)
  key = 'q'
  maxLength = 10
  getHistory(){
    console.log(111)
    const words= wx.getStorageSync(this.key)
    // 如果words是空则返回空的数组
    if(!words){
      return []
    }
    // 如果不是空则返回原先的数组
    return words
  }
  // 获取搜索结果
  search(start, q) {
    return this.request({
      url: 'book/search?summary=1',
      data: {
        q: q,
        start: start
      }
    })
  }
  // 获取热门
  getHot(){
    // 把返回的promise return回去
    return this.request({
      url:'/book/hot_keyword'
    })
  }
  // 把关键字写入缓存的函数
  addToHistory(keyword){
    // 用同步的方法设置缓存,键自己定义，把值定义成一个数组
    // 判断新添加的keyword是否在数组中
    var words=this.getHistory()
    // 使用es6的inclues方法判断是否存在
    const hasin=words.includes(keyword)
    console.log(hasin)
    // 当不存在缓存中时候写入缓存
    if (!hasin){
      // 获取当前缓存长度
      const nowlength=words.length;
      // 如果大于设置的最大缓存数量
      if (nowlength >= this.maxLength){
        // 删除最后一项缓存
        words.pop()
      }
      // 把新添加的缓存添加到缓存数组中
      console.log(words)
      words.unshift(keyword)
      // 设置缓存,每次更新words这个数组内的值
      wx.setStorageSync(this.key, words)
    }
  }
}

export { KeywordModel }